package com.info.zhiduoduo.repository.entity.crowdsource;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 智众包项目
 * </p>
 *
 * @author bob
 * @since 2019-09-25
 */
@Data
@Accessors(chain = true)
@TableName("zdd_crowdsource_project")
public class CrowdsourceProject extends Model<CrowdsourceProject> {

    private static final long serialVersionUID = 1L;

    /**
     * 智众包项目id
     */
    @TableId(value = "projectid", type = IdType.AUTO)
    private Integer projectid;
    /**
     * 企业id
     */
    private Integer compid;
    /**
     * 企业名称
     */
    private String compname;
    /**
     * 项目编号
     */
    @TableField("project_no")
    private String projectNo;
    /**
     * 项目名
     */
    @TableField("project_name")
    private String projectName;
    /**
     * 项目描述
     */
    @TableField("project_desc")
    private String projectDesc;
    /**
     * 项目类型 1:普通众包 2:众包撮合项目
     */
    @TableField("project_type")
    private Integer projectType;
    /**
     * 发票内容
     */
    @TableField("invoice_content")
    private String invoiceContent;
    /**
     * 项目总金额
     */
    @TableField("project_total_amount")
    private BigDecimal projectTotalAmount;
    /**
     * 项目总服务费
     */
    @TableField("project_total_service_charge")
    private BigDecimal projectTotalServiceCharge;
    /**
     * 项目总应付金额
     */
    @TableField("project_total_payable_amount")
    private BigDecimal projectTotalPayableAmount;
    /**
     * 总参与人数
     */
    @TableField("people_count")
    private Integer peopleCount;
    /**
     * 项目服务费率(已废弃,众包项目只需要计算税费)
     */
    @TableField("project_service_rate")
    private Double projectServiceRate;
    /**
     * 基础税率
     */
    @TableField("base_tax_rate")
    private Double baseTaxRate;
    /**
     * 年度25万以下税率
     */
    @TableField("low_tax_rate")
    private Double lowTaxRate;
    /**
     * 全年25万-75万得税率
     */
    @TableField("high_tax_rate")
    private Double highTaxRate;
    /**
     * 合伙人智众包佣金比例
     */
    @TableField("partner_brokerage_rate")
    private Double partnerBrokerageRate;
    /**
     * 支付方式 1:得仕九歌商户号代付 2:线下支付 3:企业商户号支付 4:平台线下代付 5:得仕武圣商户号代付
     */
//    @TableField("pay_type")
//    private Integer payType;
    /**
     * 项目状态 1：新建 2：待付款 3：部分付款成功 4：全部付款完成 5：全部付款完成（超量）98:项目失败，联系客服 99：已废弃
     */
    private Integer state;
    /**
     * 是否是补录的已成交的项目 0:否 1:是
     */
    private Integer supplement;
    /**
     * 推送共青城返回的项目编号
     */
    @TableField("project_bidno")
    private String projectBidno;


    /**
     * 推送共青城返回的项目流水号
     */
    @TableField("project_serial_number")
    private String projectSerialNumber ;

    /**
     * 逻辑删除 0：正常 1：已删除
     */
    @TableLogic
    private Integer deleted;

    /**
     * 项目完成时间
     */
    private Date finishtime;
    /**
     * 创建时间
     */
    private Date createtime;
    /**
     * 更新时间
     */
    private Date updatetime;

    @TableField("economic_first")
    private String economicFirst;

    @TableField("economic_second")
    private String economicSecond;

    /**
     * 共青城开票内容
     */
    @TableField("gong_qing_invoice_content")
    private String gongQingInvoiceContent;

    /**
     * 发票类型  1增值税票普通发票 2增值税专用发票
     */
    @TableField("invoice_type")
    private String invoiceType;

    /**
     * 发布项目时企业所属智众包城市 1天津 2共青城
     */
    @TableField("crowdsource_city")
    private Integer crowdsourceCity;

    /**
     * 项目证据链URL
     */
    @TableField("project_file_url")
    private String projectFileUrl;

    /**
     * 项目来源：1. ，2.传化
     */
    @TableField("project_flag")
    private Integer projectFlag;

    /**
     * 请求编号
     */
    @TableField("request_no")
    private String requestNo;

    /**
     * 开票时推送的合同存放路径
     */
    @TableField("contract_path")
    private String contractPath;

    /**
     * 运营主体
     */
    @TableField("party_id")
    private Integer partyId;

    /**
     * 催促上传项目证据链次数
     */
    @TableField("urge_upload_project_file_count")
    private int urgeUploadProjectFileCount;

    /**
     * 实际发单企业
     */
    @TableField("actual_sender")
    private Integer actualSender;

    /**
     * 补录时间
     */
    @TableField("supplement_time")
    private Date supplementTime;

    /**
     * 补录人员ID
     */
    @TableField("supplement_personnel")
    private int supplementPersonnel;

    /**
     * 申请开票日期, 字符串日期格式: yyyy-MM
     */
    @TableField("apply_invoice_date")
    private Date applyInvoiceDate;

    /**
     * 按协议规定开票 0:否 1:是
     */
    @TableField("as_protocol")
    private Integer asProtocol;
    /**
     * 保证金金额
     */
    @TableField("deposit_total_amount")
    private BigDecimal depositTotalAmount;
    /**
     * 项目总应付金额-保证金金额=企业开票金额
     */
    @TableField("project_total_invoice_amount")
    private BigDecimal projectTotalInvoiceAmount;
    /**
     * 保证金比例
     */
    @TableField("deposit_rate")
    private Double depositRate;
    //备注
    @TableField("remarks_field")
    private String remarksField;
    /**
     * 项目交付文件路径
     */
    @TableField("delivery_path")
    private String deliveryPath;
    /**
     * 是否通知乙方上传交付物 0：否 1：是
     */
	private Integer notifyUploadDelivery;

    /**
     * 智零工项目类型(1:智众包，2:智零工)
     */
    private Integer workType;

    /**
     * 渠道(1:合付宝)
     */
    private Integer channel;

    /**
     * 税源地ID
     */
    private Integer taxSourceId;
    //项目导入文件ID
    @TableField("source_file_id")
    private Integer sourceFileId;

    @TableField("tax_source_cost_rate")
    private BigDecimal taxSourceCostRate;

    @ApiModelProperty("支付方式id(表zdd_payment)")
    @TableField("pay_id")
    private Integer payId;

    //创建人ID
    @TableField("create_by")
    private Integer createBy;

    //创建人类型(1:企业自己创建(默认),2:后台创建)
    @TableField("create_type")
    private Integer createType;

    @Override
    protected Serializable pkVal() {
        return this.projectid;
    }

}
